해당 프로젝트에 사용되는 데이터는 다음과 같다.
한국관광공사가 우리나라를 방문한 외래관광객의 한국 여행실태, 한국내 소비실태 및 한국 여행 평가를 조사한 자료로 외래관광객의 한국 여행성향을 파악할 수 있다. 모델에서 주로 사용한 데이터는 집단 간의 차이가 뚜렷하게 나타나는 나이, 여행 목적, 국적. 그리고 여행자가 만족한 관광지 목록이다.
데이터는 해당 링크가 포함된 한국관광공사 페이지에서 연도별로 갱신됨을 확인 할 수 있다.
Tripadvisor에서 크롤링한 리뷰 데이터가 담긴 데이터이다. TripAdvisor는 호텔 및 레스토랑 리뷰, 숙박 예약 및 기타 여행 관련 콘텐츠를 보여주는 미국 여행 웹사이트로 해외 유저들 개개인이 느끼고 경험한 바가 리뷰로 남겨져 있다.
크롤링하고자 하는 관광지의 url 목록을 가지고 있으면, crawler.py를 이용해 리뷰 내용을 긁어올 수 있다. 본 모델에서는 활용하지 않았지만 리뷰어들의 정보나 별점 등도 긁어오는 것이 가능하다. url_cralwer.py를 통해 url 목록만 수집하는 것도 가능하다.
외래관광객 실태조사의 <만족한 관광지>에 해당하는 관광지들을 추려, BeautifulSoup를 이용해 리뷰를 수집해 총 535개 관광지 / 약 60,000개 리뷰를 수집했고, 그 중 자료가 유의미한 161개 관광지에 해당하는 자료를 이후 분석에 사용하였다.
각 관광지의 리뷰를 기반으로 LDA를 실시한 데이터이다.
자세한 설명은 model/LDA.ipynb를 참고하자.
관광지의 위치(위도, 경도)가 담긴 데이터이다. Google Map API를 사용한 Library인 ggmap 을 사용했다. 기본적인 코드는 다음과 같다.
library(ggmap)
register_google(key='Your API KEY')
mapping <- read.csv('Attractions.csv', stringsAsFactors = FALSE)
mapping <- mapping[!is.na(mapping$category),]
mapping <- mapping %>% mutate_geocode(attraction)
mapping[is.na(mapping$lon), 'attraction']
자세한 설명은 model/geo_visualization.ipynb 를 참고하자.
모델을 기반으로 모든 선택지의 예측 값을 저장해둔다. 기본적으로 model/demographics_analysis.Rmd의 내용에 기반하며, LDA Mapping 자료와 외래 관광객 실태조사를 전처리한 자료를 input으로 받는다.
자세한 설명은 target_generation.R 를 참고하자.
Shiny는 R에서 직접 인터렉티브 웹 앱을 쉽게 구축 할 수 있는 R 패키지이다. 모델을 간단하게 실행할 수 있게 하기 위한 어플리케이션이 필요하다고 느꼈기 때문에 Shiny를 활용하기로 했다.
초기 화면은 다음과 같이 구성된다.
LDA에서 선정한 원하는 Topic과 방문 목적, 국적, 그리고 나이를 선택할 수 있다.
입력한 후의 화면은 다음과 같다.